const mongoose = require('mongoose');
const shortid = require('shortid');
const moment = require('moment');


const SellerSchema = new mongoose.Schema({
    _id:{
        type:String,
        default:shortid.generate,
        unique:true//主键
    },
    uname:{
        type:String,
        require:true
    },

    pwd:{
        type:String,
        require:true
    },
    phone:{
        type:String,
        require:true
    },
    email:{
        type:String,
        require:true
    },
    //昵称
    nickName:{
        type:String,
        default:'新晋店铺'
    },
    //店铺描述
    describe:{
        type:String,
        default:'店长有点懒，什么都没写...'
    },
    avatar:{
       type:String,
       default:'/images/user/default_seller.png'
    },
    create_time:{
        type:Date,
        default:Date.now
    },
    //被关注量
    follows:{
        type:Number,
        default:0
    },
    //发布商品数量
    shopNum:{
        type:Number,
        default:0
    },
    //经验值，后期写升级功能
    score:{
        type:Number,
        default:0

    },
    //入驻申请是否通过审核
    isOk:{
        type:Boolean,
        default:false
    },
    //是否被禁用
    isDis:{
        type:Boolean,
        default:false
    },





})
SellerSchema.statics = {
        getSellerById:(id,callback)=>{
        Seller.findOne({'_id':id}).then(function (seller) {
        callback(null,seller);
    }).catch(function (err) {
        callback(err);
    })
},
    getSellerByName:(uname,callback)=>{
        Seller.findOne({'uname':uname}).then(function (seller) {
        callback(null,seller);
    }).catch(function (err) {
        callback(err);
    })
    },
getSellerByEmail:(email,callback)=>{
    Seller.findOne({'email':email}).then(function (seller) {
        callback(null,seller);
    }).catch(function (err) {
        callback(err);
    })
},
getSellerByPhone:(phone,callback)=>{
    Seller.findOne({'phone':phone}).then(function (seller) {
        callback(null,seller);
    }).catch(function (err) {
        callback(err);
    })
},
    updateSeller:(id,data,callback)=>{
        Seller.update({'_id':id},data,{new:true}).then(function (seller) {
            callback(null,seller);
        }).catch(function (err) {
            callback(err);
        })
    },
    getAllSeller:(callback)=>{
    	Seller.find().then((sellers)=>{
    		callback(null,sellers);
    	}).catch(function(err){
    		callback(err);
    	})
    }
}
SellerSchema.methods.create_time_ago = function () {
    return moment(this.create_time).fromNow();
}


const Seller = mongoose.model('Seller',SellerSchema);
module.exports = Seller;